package in.rob.client.fragment.settings; import android.graphics.Bitmap; import android.os.Build.VERSION; import android.os.Build.VERSION_CODES; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.nostra13.universalimageloader.cache.memory.MemoryCacheAware; import com.nostra13.universalimageloader.core.ImageLoader; import java.io.File; import java.util.Iterator; import in.lib.utils.Debug; import in.lib.utils.Views; import in.lib.utils.Views.InjectView; import in.lib.utils.Views.Injectable; import in.rob.client.R; import in.rob.client.fragment.base.BaseFragment; @Injectable public class AdditionalSettingsFragment extends BaseFragment { @InjectView private TextView imageCacheText; @InjectView private TextView imageCacheMemoryText; @InjectView private TextView fileCacheText; @InjectView private TextView buildNumber; @InjectView private TextView version; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.additional_settings_view, container, false); Views.inject(this, view); return view; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); try { imageCacheText.setText(getString(R.string.currently) + ": " + calculateFolderCacheSize(getContext().getExternalCacheDir().getAbsolutePath() + "/uil-images/")); imageCacheMemoryText.setText(getString(R.string.currently) + ": " + calculateMemoryCacheSize()); fileCacheText.setText(getString(R.string.currently) + ": " + calculateFolderCacheSize(getContext().getFilesDir().getAbsolutePath())); buildNumber.setText(String.valueOf(getContext().getPackageManager().getPackageInfo(getContext().getPackageName(), 0).versionCode)); version.setText(getString(R.string.version) + " " + getContext().getPackageManager().getPackageInfo(getContext().getPackageName(), 0).versionName); } catch (Exception e) { Debug.out(e); } } public String calculateMemoryCacheSize() { try { long size = 0; MemoryCacheAware<String, Bitmap> memoryCache = ImageLoader.getInstance().getMemoryCache(); Iterator<String> iterator = memoryCache.keys().iterator(); while (iterator.hasNext()) { String key = iterator.next(); if (VERSION.SDK_INT >= VERSION_CODES.KITKAT) { size += memoryCache.get(key).getAllocationByteCount(); } else { size += memoryCache.get(key).getRowBytes() * memoryCache.get(key).getHeight(); } } return Math.floor((size / 1024.0d / 1024.0d) * 100.0d) / 100.0d + "MB"; } catch (Exception e) { return "unavailable"; } } public String calculateFolderCacheSize(String path) { try { File f = new File(path); File[] files = f.listFiles(); long size = 0; for (File file : files) { size += file.length(); } return Math.floor((size / 1024.0d / 1024.0d) * 100.0d) / 100.0d + "MB"; } catch (Exception e) { return "unavailable"; } } }